Completed
Push — master ( bf23bc...4f23d4 )
by Patrick
06:42
created

leads.js ➔ form_vars   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
1
function area_change()
2
{
3
    $.ajax({
4
        url: '../api/v1/areas/'+$('#area_select').val()+'/leads',
5
        type: 'get',
6
        dataType: 'json',
7
        success: leads_done});
8
}
9
10
function lead_change(control)
11
{
12
    var val = $(control).val();
13
    if(val != '')
14
    {
15
        $('#lead_details').show();
16
        $('#submit').unbind('click');
17
18
        if(val == '_new')
19
        {
20
            $('#submit').on('click', add_lead);
21
            $('#lead_name').html("New Lead");
22
            $('#short_name').val('');
23
            $('#name').val('');
24
        }
25
        else
26
        {
27
            $('#submit').on('click', update_lead);
28
            $('#lead_name').html(val);
29
            var lead = $('#lead_select :selected').data('lead');
30
            $('#short_name').val(lead.short_name);
31
            $('#name').val(lead.name);
32
        }
33
    }
34
}
35
36
function leads_done(data)
37
{
38
    $('#lead_select').empty();
39
    var opt = $('<option/>', {value: ''});
40
    opt.appendTo($('#lead_select'));
41
    opt = $('<option/>', {value: '_new'}).html('New...');
42
    opt.appendTo($('#lead_select'));
43
    for(var i = 0; i < data.length; i++)
44
    {
45
        opt = $('<option/>', {value: data[i].short_name}).html(data[i].name);
46
        opt.appendTo($('#lead_select'));
47
        opt.data('lead', data[i]);
48
    }
49
}
50
51
function areas_done(data)
52
{
53
    for(var i = 0; i < data.length; i++)
54
    {
55
        var opt = $('<option/>', {value: data[i].short_name}).html(data[i].name);
56
        opt.appendTo($('#area_select'));
57
        opt.data('area', data[i]);
58
    }
59
    $.ajax({
60
        url: '../api/v1/areas/'+$('#area_select').val()+'/leads',
61
        type: 'get',
62
        dataType: 'json',
63
        success: leads_done});
64
}
65
66
function leads_post_done(data)
67
{
68
    if(data.success !== undefined)
69
    {
70
        location.reload();
71
    }
72
    else
73
    {
74
        alert(data.error);
75
    }
76
}
77
78
function form_vars(){
79
    return {
80
        short_name: $('#short_name').val(),
81
        name: $('#name').val(),
82
        area: $('#area_select').val()
83
    };
84
}
85
86
function add_lead()
87
{
88
    $.ajax({
89
        url: '../api/v1/leads',
90
        data: JSON.stringify(form_vars()),
91
        type: 'POST',
92
        processData: false,
93
        dataType: 'json',
94
        success: leads_post_done});
95
}
96
97
function update_lead()
98
{
99
    $.ajax({
100
        url: '../api/v1/leads/'+$('#lead_name').html(),
101
        data: JSON.stringify(form_vars()),
102
        type: 'PATCH',
103
        processData: false,
104
        dataType: 'json',
105
        success: leads_post_done});
106
}
107
108
function init_page()
109
{
110
    $.ajax({
111
        url: '../api/v1/areas',
112
        type: 'get',
113
        dataType: 'json',
114
        success: areas_done});
115
}
116
117
$(init_page);
118